package com.yuju.guest.service;

import java.math.BigDecimal;
import java.util.Map;

import com.yuju.common.Result;

/**
 * 类名：WxPayService  <br />
 *
 * 功能：微信支付接口
 *
 * @author : xuehj <br />
 * @Date : 2017年9月22日 下午3:31:31  <br />
 * @version : 1.1 <br />
 */
public interface WxPayService {
	
	/**
	 * 功能：获取微信预支付包裹<br/>
	 *
	 * @author xuehj
	 * @Date 2017年9月22日 下午3:32:11 <br/>
	 */
	String getPayPackage(String orderNo, String openId, String ip);
	/**
	 * 微信扫码支付
	 * 功能：<br/>
	 *
	 * @author sunyl
	 * @Date 2018年1月18日 上午10:47:58 <br/>
	 */
	Result microPay(BigDecimal money, String out_trade_no, String auth_code, String spbill_create_ip, String flag)
			throws Exception;
	/**
	 * 微信訂單撤銷
	 * 功能：<br/>
	 *
	 * @author sunyl
	 * @Date 2018年1月18日 上午10:47:58 <br/>
	 */
	Result reverse(BigDecimal money, String out_trade_no, String auth_code, String spbill_create_ip, String flag)
			throws Exception;
	/**
	 * 微信扫码支付查询
	 * 功能：<br/>
	 *
	 * @author sunyl
	 * @Date 2018年1月18日 上午10:47:46 <br/>
	 */
	Map orderQuery(String out_trade_no) throws Exception;
	/**
	 * 取消订单
	 * 功能：<br/>
	 *
	 * @author sunyl
	 * @Date 2018年1月18日 下午8:25:30 <br/>
	 */
	Map reverse(String out_trade_no) throws Exception;
	/**
	 * 申請退款
	 * 功能：<br/>
	 *
	 * @author sunyl
	 * @Date 2018年2月5日 下午3:15:53 <br/>
	 */
	Result refund(BigDecimal refund_fee,BigDecimal total_fee ,String out_trade_no, String transaction_id,String flag)
			throws Exception;
	Result refundForService(String groupId,BigDecimal refund_fee,BigDecimal total_fee ,String out_trade_no, String transaction_id,String flag)
			throws Exception;
	/**
	 * 服务商
	 * 功能：<br/>
	 *
	 * @author sunyl
	 * @Date 2018年2月6日 上午9:55:29 <br/>
	 */
	Result microPayForService(String groupId, BigDecimal money, String out_trade_no, String auth_code,
			String spbill_create_ip, String flag) throws Exception;
	Map orderQueryForService(String out_trade_no) throws Exception;
}
